1. The Field of the Invention
The present invention relates to the field of database management systems. In particular, the present invention relates to methods and systems for allowing third party client applications to have influence on how high-level document commands are implemented in a database.
2. The Prior State of the Art
With the development of computer networks and the Internet, anyone who has access to an Internet capable computer may access information from all over the world. The present era has even been termed the “information age” due to the widespread abundance of information. Although this abundance of information is useful, individuals may easily be overwhelmed with information to the point where it is difficult to filter out relevant information from irrelevant information.
Database management systems are systems that manage collections of data (i.e., databases) so as to allow individuals, devices and applications to easily access, manage, and update information. Thus, database management systems provide a significant contribution to the information age by allowing for the efficient use of information.
Conventional database management systems such as the database management system 100 shown in FIG. 1 include an underlying database 110 that contains organized data in the form of a number of tables such as table “A”, table “B”, table “C” and table “D”. Each table contains entries that associate documents with property of the documents. For example, one table may contain a count of the number of files within given folders, another may list the memory size of given files, yet another may list other properties associated with given files, or folders. For each document, there is typically more than one table that may associated with the document by, for example, describing properties of the document.
A document (e.g., document 1, 2, 3 and 4 in FIG. 1) is an identifiable entity from the viewpoint of applications that use the database management system. For example, a folder or an item such as an electronic mail message within the folder may be considered to be a document since they are identified as entities from the viewpoint of the application that uses the database management system. For example, in the context of electronic messaging, an application may present folders such as “in-boxes” and “out-boxes” to a user with corresponding electronic mail messages in the folders. These folders and electronic mail messages are “documents” from the viewpoint of the application. Similarly, files and directories within a file system may also be documents from the viewpoint of the application that uses the database management system. The tables within the underlying database are not considered to be documents since they are identified internal to the database management system, and not at the higher level of the application that uses the database management system.
The database application 120 generates high-level document commands (e.g., high-level command 121) that relate to operations to be performed on a document. Examples of such document commands might include operations such as, for example, move folder, move message, delete message, copy folder, copy file, and so forth.
Each of these high-level document commands is received by the database engine 130 which implements the high-level document commands by executing a number of table level commands that result in database tables being updated. Typically, the database engine would use the disk access module 140 of an operating system to produce the physical control signals necessary to read and write the appropriate sectors in the disk, each table comprising one or more possibly discontiguous sectors on the disk.
Once the high-level document command is implemented, the database management system may notify other client applications using notification module 150 that the high-level document command was implemented. Then, the other client applications may perform a variety of processes in response to that notification. For example, if a new electronic mail message is added into a public folder, the other client applications that have subscribed to that public folder may receive notification of the new electronic mail message so that they can update their local database to reflect the change, or perhaps refresh the screen if it is currently displaying the contents of the public folder.
In the conventional method, the notification is only dispatched after the high-level document command is implemented. There is nothing the client application can do to affect how the high-level document command is implemented, what additional actions are to be taken in the database at the same time the high-level document command is implemented, or whether the high-level document command is to be implemented at all. Therefore, what are desired are methods and systems for allowing more flexibility for a third party client application to affect how a high-level document command is implemented in a database.